package com.inspinia.upms.rpc.api;


import com.inspinia.base.service.BaseService;
import com.inspinia.upms.common.model.resource.UpmsResource;

import java.util.List;
import java.util.Set;

/**
 * Created by veblen on 16-2-1.
 */
public interface UpmsResourceService extends BaseService<UpmsResource> {
    /**
     * 查找所有
     * @return
     */
    List<UpmsResource> findAll();

    /**
     * 验证资源名
     * @param UpmsResourceName
     * @param UpmsResourceId
     * @param pid
     * @return
     */
    boolean validateName(String UpmsResourceName, Long UpmsResourceId, Long pid);

    /**
     * 获取父类的id
     *
     * @param distUpmsResourceIds
     * @return
     */

    Set<Long> getDistUpmsResource(Set<Long> distUpmsResourceIds);

    /**
     * 获取角色的菜单
     *
     * @param roleIds 角色的id
     * @return
     */
    List<UpmsResource> findMenusByRole(List<Long> roleIds);

    /**
     * 修改状态
     * @param bean
     */
    int updateStatus(UpmsResource bean);

    /**
     * 查找角色对应的资源id集合
     *
     * @param roleIds 角色id集合
     * @return 资源id集合
     */
    List<Long> findResourceIdsByRoleIds(List<Long> roleIds);

    /**
     * 查找岗位对应的资源id集合
     *
     * @param postIds 岗位id集合
     * @return 资源id集合
     */
    List<Long> findResourceIdsByPostIds(List<Long> postIds);

    /**
     * 获取父类的id
     *
     * @param distResourcesIds
     * @return
     */

    Set<Long> getDistResources(Set<Long> distResourcesIds);
}
